package puzzlegame.TEST;

import StudentManagementSystem.User;

import javax.swing.*;
import java.awt.*;
import java.util.ArrayList;
import java.util.Random;



public class loginJframe extends JFrame  {
    //创建一个集合，用来存储正确的用户名和密码
    static ArrayList<User>list=new ArrayList<>();
    static {
        list.add(new User("zhangsan", "123"));
        list.add(new User("lisi", "123"));


    }
    public loginJframe() {
        //初始化界面
        initJFame();
        //在这个界面添加内容
        initView();
        //令界面可视化
        this.setVisible(true);

    }

    public void initView() {
        //1.在此添加‘用户名’这个图片
        JLabel usernameText=new JLabel(new ImageIcon());
        usernameText.setBounds(116,135,47,17);
        this.getContentPane().add(usernameText);
        //添加用户名输入框
        JTextField username=new JTextField();
        username.setBounds(195,134,200,30);
        this.getContentPane().add(username);


        //2.在此添加‘密码’这个图片
        JLabel passwordText=new JLabel(new ImageIcon());
        usernameText.setBounds(130,195,32,17);
        //添加到界面
        this.getContentPane().add(passwordText);
        //添加密码输入框
        JTextField password=new JTextField();
        password.setBounds(195,195,200,30);
        //添加到界面
        this.getContentPane().add(password);






        //3.在此添加‘验证码’这个图片
        JLabel codeText=new JLabel(new ImageIcon());
        usernameText.setBounds(133,256,50,30);
        //添加到界面
        this.getContentPane().add(codeText);
        //添加验证码输入框
        JTextField code=new JTextField();
        code.setBounds(195,256,100,30);
        //添加到界面
        this.getContentPane().add(code);


      /*在此添加验证码
        String codeStr= xxx.getCode();
        JLabel rightcode=new JLabel();
        //设置内容
        rightcode.setText(codeStr);
        //位置和宽高
        rightcode.setBounds(300,256,50,30);
        //添加到界面中
        this.getContentPane().add(rightcode);
      */

        //4.添加登录按钮
        JButton login=new JButton();
        login.setBounds(123,310,128,47);
        //添加登录按钮的图片
        login.setIcon(new ImageIcon());
        //去除按钮边框
        login.setBorderPainted(false);
        //去除按钮的背景
        login.setContentAreaFilled(false);
        this.getContentPane().add(login);


        //5.添加注册按钮
        JButton register=new JButton();
        register.setBounds(256,310,128,47);
        //添加注册按钮图片
        register.setIcon(new ImageIcon());
        //去除按钮边框
        register.setBorderPainted(false);
        //去除按钮的背景
        register.setContentAreaFilled(false);
        this.getContentPane().add(register);



        //6.添加背景图片
        JLabel background =new JLabel(new ImageIcon());
        background.setBounds(0,0,470,390);
        this.getContentPane().add(background);
    }

    public void initJFame() {
        this.setSize(488, 438);//this表示当前对象的地址值
        //设置界面标题
        this.setTitle("拼图游戏 v1.0 登录");
        //界面置顶
        // this.setAlwaysOnTop(true);
        //设置界面居中
        this.setLocationRelativeTo(null);
        //设置游戏的关闭模式,(3)是关闭任意一个界面并停止运行。(2)是关闭所有界面停止运行
        this.setDefaultCloseOperation(2);
        //显示界面
        this.setVisible(true);
        //初始化图片
        initimage();
        //显示界面，一般在最后
        this.setVisible(true);

    }

    /*展示用户名或密码错误
      void showJDialog() {
        System.out.println("用户名或密码错误");
    }

     */

    public void showJDialog(String content){
        //创建一个弹框对象
        JDialog jDialog=new JDialog();
        //给弹框设置大小
        jDialog.setSize(2000,150);
        //让弹框置顶
        jDialog.setAlwaysOnTop(false);
        //让弹框居中
        jDialog.setLocationRelativeTo(null);
        //弹框不关闭无法进行其他操作
        jDialog.setModal(true);
        //可视化
        jDialog.setVisible(true);
    }

    private void initimage() {
        //在此添加'用户名'这个图片
        JLabel jLabel1=new JLabel(new ImageIcon());
        //在此添加'密码'这个图片
        JLabel jLabel2=new JLabel(new ImageIcon());
        //在此添加'验证码'这个图片
        JLabel jLabel3=new JLabel(new ImageIcon());
        jLabel3.setFont(new Font("微软雅黑",0,18));
        //这里是明文提示的输入框，用来输入用户名
        JTextField userID = new JTextField();
        //这里是明文提示的输入框，用来输入密码
        //在此展示的是‘***’或‘...’的形式
        JPasswordField password = new JPasswordField();
        //这里是明文提示的输入框，用来输入验证码
        JTextField identifyCode = new JTextField();
        //调用验证码
        identifycode1();

    }



    private static int identifycode1() {
        char[] chs = new char[52];
        for (int i = 0; i < chs.length; i++) {
            if (i <= 25) {
                //小写字母
                chs[i] = (char) (97 + i);
            } else {
                //当i>26时,添加大写字母
                chs[i] = (char) (65 + i - 26);
            }
        }
        for (int i = 0; i < chs.length; i++) {
            System.out.print(chs[i] + " ");
        }
        String result = "";
        Random r = new Random();
        for (int i = 0; i < 4; i++) {
            int randomIndex = r.nextInt(chs.length);
            result = result + chs[randomIndex];
        }
        //System.out.print(result);
        int number = r.nextInt(10);
        result = result + number;
        System.out.println(result);
        return 0;
    }



}

